#ifndef _eventhandler_h_
#define _eventhandler_h_
#include <vector>
#include <string>
#include "Root.h"
#include "Camera.h"

//Forward declaration of classes
class Root;

class EventHandler
{
public:
    void SetManager(Root* manager);
    void SetCamera(Camera* camera);
    virtual void OnReshape(int width, int height) {};
    virtual void OnDisplay() {};
    virtual void OnKeyboard(unsigned char key, int x, int y) {};
    virtual void OnEntry( int state) {};
    virtual void OnMouse(int button, int state, int x, int y) {};
    virtual void OnMotion(int x, int y) {};
    virtual void OnPassiveMotion(int x, int y) {};
    virtual void OnIdle() {};
    virtual void OnStartup() {};
    EventHandler();
    virtual ~EventHandler() {};

protected:
    std::string name_;
    Root* manager_;
    Camera* camera_;
};

#endif 